package com.sxb.spike.utils;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;

/**
 * MD5 工具类
 */
@Component
public class MD5Utils {

    private static final String salt = "1a2b3c4d";

    /**
     * MD5 加密
     * @param src
     * @return
     */
    public static String md5(String src) {
        return DigestUtils.md5Hex(src);
    }

    /**
     * MD5 + salt 加密
     * @param inputPass
     * @return
     */
    public static String inputPassToFormPass(String inputPass) {
        String str = "" + salt.charAt(0) + salt.charAt(2) + inputPass + salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }

    /**
     * 二次加密
     * @param formPass
     * @param salt
     * @return
     */
    public static String formPassToDBPass(String formPass, String salt) {
        String str = "" + salt.charAt(0) + salt.charAt(2) + formPass + salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }

    /**
     * 二次加密方法封装
     * @param inputPass
     * @param salt
     * @return
     */
    public static String inputPassToDBPass(String inputPass, String salt) {
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = formPassToDBPass(formPass, salt);
        return dbPass;
    }

    /**
     * Test
     * @param args
     */
/*    public static void main(String[] args) {
        // 96b24fb764ec7f6a810c97e19c3e13cf
        System.out.println("第一次加密：" + inputPassToFormPass("123456"));
        System.out.println("第二次加密：" + formPassToDBPass("d3b1294a61a07da9b49b6e22b2cbd7f9", "1a2b3c4d"));
        System.out.println("封装后密码：" + inputPassToDBPass("123456", "1a2b3c4d"));
    }*/

}
